package day04_api_code.com.itheima.d5_jdk8_time;

import java.time.Clock;
import java.time.ZoneId;
import java.time.ZonedDateTime;
import java.util.Set;

public class Test4_ZoneId_ZonedDateTime {
    public static void main(String[] args) {
        // 目标：了解时区和带时区的时间。
        // 1、ZoneId（用于获取时区的）的常见方法：
        // public static ZoneId systemDefault(): 获取系统默认的时区
        ZoneId zoneId = ZoneId.systemDefault();
        System.out.println("zoneId.getId() = " + zoneId.getId());
        System.out.println("zoneId = " + zoneId);

        // public static Set<String> getAvailableZoneIds(): 获取Java支持的全部时区Id
        Set<String> zoneIds = ZoneId.getAvailableZoneIds();
        System.out.println("zoneIds = " + zoneIds);

        // public static ZoneId of(String zoneId) : 把某个时区id封装成ZoneId对象。
        // America/New_York
        ZoneId an = ZoneId.of("America/New_York");

        // 2、ZonedDateTime：带时区的时间。
        // public static ZonedDateTime now(ZoneId zone): 获取某个时区的ZonedDateTime对象。
        // public static ZonedDateTime now()：获取系统默认时区的ZonedDateTime对象
        // ZonedDateTime 的功能和 LocalDateTime一样了
        ZonedDateTime zdt = ZonedDateTime.now(an);
        System.out.println("zdt = " + zdt);

        // 世界标准时间了： 很多服务器要获取世界时间！
        ZonedDateTime utcNow = ZonedDateTime.now(Clock.systemUTC());
        System.out.println("utcNow = " + utcNow);
    }
}
